一、 ?常見的Web集群調(diào)度器
目前常見的Web集群調(diào)度器分為軟件和硬件
軟件通常使用開源的LVS、Haproxy、 Nginx
LVS性能最好,但是搭建相對復(fù)雜; Nginx 的upstream模塊支持群集功能,但是對群集節(jié)點(diǎn)健康檢查功能不強(qiáng),高并發(fā)性能沒有Haproxy好。
硬件一般使用比較多的是F5、Array, 也有很多人使用國內(nèi)的一些產(chǎn)品,如梭子魚、綠盟等
1、HAProxy的概念
HAProxy是可提供高可用性、負(fù)載均衡以及基于TCP和HTTP應(yīng)用的代理,是免費(fèi)、快速并且可靠的一種解決方案。HAProxy 非常適用于并發(fā)大(并發(fā)達(dá)1w以上) web站點(diǎn),這些站點(diǎn)通常又需要會(huì)話保持或七層處理。HAProxy的運(yùn)行模式使得它可以很簡單安全的整合至當(dāng)前的架構(gòu)中,同時(shí)可以保護(hù)web服務(wù)器不被暴露到網(wǎng)絡(luò)上。
1.1 Haproxy應(yīng)用分析
LVS在企業(yè)應(yīng)用中抗負(fù)載能力很強(qiáng),但存在不足
LVS不支持正則處理,不能實(shí)現(xiàn)動(dòng)靜分離
對于大型網(wǎng)站,LVS的實(shí)施配置復(fù)雜,維護(hù)成本相對較高
Haproxy是一款可提供高可用性、負(fù)載均衡、及基于TCP和HTTP應(yīng)用的代理的軟件
適用于負(fù)載大的Web站點(diǎn)
運(yùn)行在硬件上可支持?jǐn)?shù)以萬計(jì)的并發(fā)連接的連接請求
1.2 HAProxy的主要特性
? ? 可靠性和穩(wěn)定性非常好,可以與硬件級(jí)的F5負(fù)載均衡設(shè)備相媲美
? ? 最高可以同時(shí)維護(hù)40000-50000個(gè)并發(fā)連接,單位時(shí)間內(nèi)處理的最大請求數(shù)為20000個(gè),最大處理能力可達(dá)10Git/s;
? ? 支持多達(dá)8種負(fù)載均衡算法
? ? 支持Session會(huì)話保持,Cookie的引導(dǎo);
? ? 支持通過獲取指定的url來檢測后端服務(wù)器的狀態(tài);
? ? 支持虛機(jī)主機(jī)功能,從而實(shí)現(xiàn)web負(fù)載均衡更加靈活
? ? 支持連接拒絕、全透明代理等獨(dú)特的功能;
? ? 擁有強(qiáng)大的ACL支持,用于訪問控制
? ? 支持TCP協(xié)議的負(fù)載均衡轉(zhuǎn)發(fā);
? ? 支持客戶端的keepalive功能,減少客戶端與haproxy的多次三次握手導(dǎo)致資源浪費(fèi),讓多個(gè)請求在一 個(gè)tcp連接中完成
1.3 Haproxy提供了3種實(shí)現(xiàn)會(huì)話保持的方式
? ? 源地址hash
? ? 設(shè)置cookie
? ? 會(huì)話粘性表stick-table
2、HAProxy調(diào)度算法常見的8種
? ? roundrobin, 表示簡單的輪詢
? ? static-rr, 表示根據(jù)權(quán)重
? ? leastconn,表示最少連接者先處理
? ? source,表示根據(jù)請求源IP
? ? uri,表示根據(jù)請求的URI,做cdn需使用;
? ? 表示根據(jù)請求的URL參數(shù)'balance url_param' requires an URL parameter name
? ? hdr (name),表示根據(jù)HTTP請求頭來鎖定每一次HTTP請求;
? ? rdp-cookie (name),表示根據(jù)cookie (name)來鎖定并哈希每一次TCP請求。